package main

type AlphaSetting struct {
	InstrumentType string  `json:"instrumentType"`
	Region         string  `json:"region"`
	Universe       string  `json:"universe"`
	Delay          int     `josn:"delay"`
	Decay          int     `json:"decay"`
	Neutralization string  `json:"neutralization"`
	Truncation     float64 `json:"truncation"`
	Pasteurization string  `json:"pasteurization"`
	UnitHandling   string  `json:"unitHandling"`
	NanHandling    string  `json:"nanHandling"`
	MaxTrade       string  `json:"maxTrade"`
	Language       string  `json:"language"`
	Visualization  bool    `json:"visualization"`
}

type SimulateAlphaData struct {
	Type     string       `json:"type"`
	Settings AlphaSetting `json:"settings"`
	Regular  string       `json:"regular"`
}

type SuperSetting struct {
	InstrumentType    string  `json:"instrumentType"`
	Region            string  `json:"region"`
	Universe          string  `json:"universe"`
	Delay             int     `josn:"delay"`
	Decay             int     `json:"decay"`
	Neutralization    string  `json:"neutralization"`
	Truncation        float64 `json:"truncation"`
	Pasteurization    string  `json:"pasteurization"`
	UnitHandling      string  `json:"unitHandling"`
	NanHandling       string  `json:"nanHandling"`
	MaxTrade          string  `json:"maxTrade"`
	Language          string  `json:"language"`
	Visualization     bool    `json:"visualization"`
	SelectionHandling string  `json:"selectionHandling"`
	SelectionLimit    int     `json:"selectionLimit"`
}

type SimulateSuperData struct {
	Type      string       `json:"type"`
	Settings  SuperSetting `json:"settings"`
	Selection string       `json:"selection"`
	Combo     string       `json:"combo"`
}

type PnlVal struct {
	Date string  `json:"date"`
	Val  float64 `json:"val"`
}

type AlphaPnl struct {
	Alphaid string   `json:"alphaid"`
	Sharpe  float64  `json:"sharpe"`
	Vals    []PnlVal `json:"vals"`
}

type ActiveAlphaPnl struct {
	AlphaPnls []*AlphaPnl `json:"alphapnls"`
}

type Conf struct {
	SimulateNum  int
	AlphaPoolNum int
	FileIndex    string
}
